home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-01-18 | 3.2 KB | 122 lines | [TEXT/MPS ] |
- // Definitions.h
- // Copyright ©1992 Apple Computer, Inc.
- // Kent Sandvik DTS
- // This file contains debugger macros
- // Version Info (latest first):
- //
- // <1> khs 1.0 First final version
- // <2> khs 1.0.1 Fixed a memory leak in TMapApplication::GetSleepValue()
-
-
- #ifndef __DEFINITIONS__
- #define __DEFINITIONS__
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
-
-
- /* DEBUGGER FLAGS
- MacApp 3.0 has many special flags which could be turned on/off from the
- debug menu entry. We are mostly interested in signalling something from
- the application to the source code, so we are interested to use:
- gIntenseDebugging - turn on intense debugging, it will also signal to the
- framework to start tracing many other things, so it's very costly.
- gUserFlag1, gUserFlag2, gUserFlag3 - these are better suited for special control
- that we know about. In this case we are using gUserFlag1.
- WHY DON'T YOU USE MACROS, INSTEAD INLINE FUNCTIONS?
- Because I'm sick-n-tired of tracing macro based problems. It should not matter,
- we are still inlining code directly instead of calling functions. Also, then
- I'm able to use static variables for certain 'macros' which should only do something
- based on earlier state.
- TMON USE
- These macros are defined for MacsBug, i.e. they start with a ';' in the beginning
- of the string. If you want to use TMON, change the ';' to a '™' and also change the debugger
- statement to something suitable in the TMON world. BTW, these macros are based on
- MacsBug 6.2.2.
- */
-
- // Globals
- Boolean gHeapScramble = FALSE; // heap scrambling
- Boolean gLeaks = FALSE; // if Leaks DCMD is installed, test for memory leaks
-
-
- inline void DBOUTPUT(CStr255 a) // Call debugger with a string - used for other macros.
- {
- if (gUserFlag1)
- DebugStr(a);
- }
-
-
- inline void DBHEAPCHECK() // Heap Check - check for heap status, it stops if something is wrong
- {
- DBOUTPUT(";HC; G");
- }
-
-
- inline void DBHEAPCHECKLOG() // Heap Check variation - log information inside a log file
- {
- DBOUTPUT("Extended Heap Check:; LOG HeapTest; WH; HC; HZ; LOG; G");
- }
-
-
- inline void DBHEAPSCRAMBLEON() // Turn on Heap Scramble
- {
- if (!gHeapScramble)
- {
- DBOUTPUT("Heap Scramble ON; HS; G");
- gHeapScramble = TRUE;
- }
- }
-
-
- inline void DBHEAPSCRAMBLEOFF() // Turn off Heap Scramble
- {
- if (gHeapScramble)
- {
- DBOUTPUT("Heap Scramble OFF; HS; G");
- gHeapScramble = FALSE;
- }
- }
-
-
- inline void DBHEAPINFOLOG() // Log Heap information into log
- {
- DBOUTPUT("Heap Info:; LOG HeapInfo; WH; HT; HD RS; LOG; G");
- }
-
-
- inline void DBEVENTRECORDLOG() // Log Event Records at particular instances
- {
- DBOUTPUT("Event Record:; LOG EventRecordLog; WH; DM 000234C4 EventRecord; LOG; G");
- }
-
-
- inline void DBLEAKSON() // Turn on Leaks dcmd (assume we have it installed, if not it's on Developer CD)
- {
- if (!gLeaks)
- {
- DBOUTPUT("Leaks ON; Leaks On; G");
- gLeaks = TRUE;
- }
- }
-
-
- inline void DBLEAKSOFF() // Turn off Leaks dcmd
- {
- if (gLeaks)
- {
- DBOUTPUT("Leaks OFF; Leaks Off; G");
- gLeaks = FALSE;
- }
- }
-
-
- // I think you got the idea now, feel free to create any other MacsBug/low level debugger
- // commands which could be used from debug mode (or actually any other Macintosh source code
- // which could set a flag dynamically from the Debugger menu).
-
-
- #endif __DEFINITIONS__
-
-